<!DOCTYPE html>
<html lang="en">
<!--使用namespace让电脑知道我们使用的是thymeleaf模板-->
<head  xmlns:th="http://www.thymeleaf.org">
    <meta charset="UTF-8">
    <title>Title</title>
<!--    直接托左边的bootstrap.min.css和bootstrap.min.js文件进来，注意不要改动路径-->
    <link rel="stylesheet" href="/css/bootstrap.min.css">
    <!--  JQuery放在Head标签结束之前，所有CSS结束之后的位置  -->
    <script src="/js/jquery-3.6.0.min.js"></script>
    <link rel="stylesheet" href="/plugins/bootstraptable/bootstrap-table.min.css">


</head>
<body>
<!--加入一个流式布局的容器-->
<div class="container-fluid">

<!--    &lt;!&ndash; 记得给输入一个id这样才能找到输入的内容，用action来找到对应的url &ndash;&gt;-->
<!--    <form action="/webapi/student/findByName">-->
<!--        <input type="text" id="name" name="name"placeholder="请输入要查询的学生的姓名:">-->
<!--        <input type="button" value="查询"  onclick="search();">-->
<!--&lt;!&ndash;        <input type="submit" value="提交">&ndash;&gt;-->
<!--    </form>-->




    <form class="form-inline">
        <button type="button" class="btn btn-default btn-primary"  data-toggle="modal" data-target="#myModal"onclick="preAdd();">新增学生</button>
        <div class="form-group">
            <label for="searchName" style="margin-left: 300px">请输入名字</label>
            <input type="text" class="form-control" id="searchName" placeholder="请输入名称"name="searchName">
        </div>
        <button type="button" class="btn btn-default btn-primary" onclick="search1();">查询</button>

        <div class="form-group">
            <label for="searchSex"style="margin-left: 300px">请输入性别</label>
            <input type="text" class="form-control" id="searchSex" placeholder="请输入性别" name="searchSex">
        </div>

        <button type="button" class="btn btn-default btn-primary" onclick="search2();">查询</button>
    </form>


    <table class="table table-bordered"id="stuTable">

    </table>


</div>

<div class="modal fade" tabindex="-1" role="dialog"id="myModal">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title">学生信息</h4>
            </div>
            <div class="modal-body">

                <form id="formStudent">
                    <input hidden="hidden" id="gradeid"name="gradeid"/>
                    <input hidden="hidden" id="id"name="id"/>
                    <div class="form-group">
                        <label for="sname">姓名</label>
                        <input type="text" class="form-control" id="sname" name="sname"placeholder="姓名">
                    </div>
                    <div class="form-group">
                        <label for="psw">Password</label>
                        <input type="password" class="form-control" id="psw" name="psw"placeholder="密码">
                    </div>
                    <div class="form-group">
                        <label for="sex">性别:</label>
                        <select class="form-control"id="sex"name="sex">
                            <option value="男">男</option>
                            <option value="女">女</option>

                        </select>
                        <div class="form-group">
                            <label for="cno">课程号</label>
                            <input type="text" class="form-control" id="cno" name="cno"placeholder="课程号">
                        </div>
                        <div class="form-group">
                            <label for="cname">课程名</label>
                            <input type="text" class="form-control" id="cname" name="cname"placeholder="课程名">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="score">成绩</label>
                        <input type="text" class="form-control" id="score" name="score"placeholder="成绩">
                    </div>
                </form>

<!--                表单结束-->


            </div>
            <div class="modal-footer">

                <button type="button" class="btn btn-primary" onclick="saveStudent();">保存</button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->


<script src="/js/bootstrap.min.js"></script>
<script src="/plugins/bootstraptable/bootstrap-table.min.js"></script>
<script src="/plugins/bootstraptable/locale/bootstrap-table-zh-CN.min.js"></script>

<script type="text/javascript">

    function preAdd(){
        $("#gradeid").val(0);//提示新增
    }

    /**
     * 获取的结果放在rs里面，rs是一个数据集
     */

    //新增或者更新都可以
    function saveStudent(){
        //收集表单参数,serialize序列化一个数字
        var data=$("#formStudent").serialize();
        var id=$("#gradeid").val();
        if(id<1){
            //是新增
            $.ajax({
                url: "/webapi/studentInfo/insert",
                method:"post",//是一个post请求
                data:data
            }).done(function (){
                //重新刷新table
                loadTable()
                //关闭对话框
                $('#myModal').modal('hide')
            })
        }else{
            //是更新
            $.ajax({
                url: "/webapi/studentInfo/update",
                method:"put",//是一个put请求
                data:data
            }).done(function (){
                //重新刷新table
                loadTable()
                //关闭对话框
                $('#myModal').modal('hide')
            })
        }
    }

    function search1(){
        $.ajax({
            url:'/webapi/studentInfo/findByName',
            data:{
                name: $("#name").val(),
            },//data表示操作的数据，即用户输入的姓名
            method:"get"
        //rs：表示返回值，用done来执行用户操作完后的显示
        }).done(function (rs){

            var len = rs.length;
            var html = ""; //这个html的内容会改变，所以自动推荐var

            for(let i=0; i<len; i++){
                var item=rs[i];
                html+="<tr>"
                    +"<td>"+item.gradeid+"</td>"
                    +"<td>"+item.id+"</td>"
                    +"<td>"+item.sname+"</td>"
                    +"<td>"+item.sex+"</td>"
                    +"<td>"+item.cno+"</td>"
                    +"<td>"+item.cname+"</td>"
                    +"<td>"+item.score+"</td>"
                    +"<td>"
                    +" <a href='#' onclick='editStudent("+item.gradeid+");'>编辑   " +
                    "<a href='#' onclick='deleteStudent("+item.gradeid+");'>删除</a> </a></td>"
                    +"</tr>"
            }
            $("#studentTb").html(html);
        })
    }

    function search(){
        //传递一个destroy参数就可以消除之前的表格
        $('#stuTable').bootstrapTable("destroy");
        loadTable();
    }

    function search2(){
        //传递一个destroy参数就可以消除之前的表格
        $('#stuTable').bootstrapTable("destroy");
        $('#stuTable').bootstrapTable({
            url: '/webapi/studentInfo/getbySex',
            striped:true,//设置为true会有隔行变色效果
            pagination:true,//设置为true将会在底部显示分页条
            singleSelect: false,//设置为false将禁止多选
            pageSize:3,//如果设置了分页，每页数据条数
            pageNumber:1,//如果设置了分页，首页页码
            sidePagination:"server",//设置在哪里进行分页，可选值为‘client’
            //查询串是一个函数
            queryParams:function (params){

                var paraObj={
                    size: params.limit,
                    page:params.offset/params.limit,
                    sort:"gradeid",
                    direct:"desc",
                    sex:$("#searchSex").val()
                };
                return paraObj;
            },
            columns: [{
                field: 'gradeid',
                title: '序号'
            },{
                field: 'id',
                title: '学号'
            }, {
                field: 'sname',
                title: '姓名'
            }, {
                field: 'sex',
                title: '性别'
            },{
                field: 'cno',
                title: '课程号'
            },{
                field: 'cname',
                title: '课程名'
            },{
                field: 'score',
                title: '成绩'
            }, {
                field: '操作1',
                title: '删除',
                formatter:function (value,row,index){
                    var p1='<a class="remove" href="#" title="Remove" onClick="deleteStudent(\''+row.gradeid+'\')">删除</a>';
                    return p1;
                }
            },{
                field: '操作2',
                title: '编辑',
                formatter:function (value,row,index){
                    var p2='<a class="edit" href="#" title="Edit" onClick="editStudent(\''+row.gradeid+'\')">编辑</a>';
                    return p2;
                }
            },
            ]
        })

    }

    function editStudent(id){
        $('#myModal').modal('show');
        $.ajax({

            url:'/webapi/studentInfo/get/'+id
        }).done(function (rs){
            $("#id").val(rs.id);
            $("#sname").val(rs.sname);
            $("#sex").val(rs.sex);
            $("#psw").val("");
            $("#cno").val("");
            $("#cname").val("");
            $("#score").val("");
        })

    }

    function deleteStudent(id){

        if(confirm("你是否真的要删除吗？别后悔哦！")){

            $.ajax({
                url:"/webapi/studentInfo/delete/"+id,
                method:'delete'

            }).done(function (){

                loadTable();//一旦删除完毕需要更新表格，使用loadTable
            });

        }//end if

    }

    function loadTable()
    {
        var v=localStorage.getItem('name');

        $('#stuTable').bootstrapTable({
            url: '/webapi/studentInfo/getbypage',
            striped:true,//设置为true会有隔行变色效果
            pagination:true,//设置为true将会在底部显示分页条
            singleSelect: false,//设置为false将禁止多选
            pageSize:3,//如果设置了分页，每页数据条数
            pageNumber:1,//如果设置了分页，首页页码
            sidePagination:"server",//设置在哪里进行分页，可选值为‘client’
           //查询串是一个函数
            queryParams:function (params){
                var paraObj={
                    size: params.limit,
                    page:params.offset/params.limit,
                    sort:"gradeid",
                    direct:"desc",
                    sname:v
                };
                return paraObj;
            },
            columns: [{
                field: 'gradeid',
                title: '序号'
            },{
                field: 'id',
                title: '学号'
            }, {
                field: 'sname',
                title: '姓名'
            }, {
                field: 'sex',
                title: '性别'
            },{
                field: 'cno',
                title: '课程号'
            },{
                field: 'cname',
                title: '课程名'
            },{
                field: 'score',
                title: '成绩'
            },{
                field: '操作1',
                title: '编辑',
                formatter:function (value,row,index){
                    var p2='<a class="edit" href="#" title="Edit" onClick="editStudent(\''+row.gradeid+'\')">编辑</a>';
                    return p2;
                }
            },
            ],
            responseHandler:function(res){
                return {
                    "total":res.data.total,//总数
                    "rows":res.data.rows  //数量
                }
            }
        })

    }//end of loadTable();


    $(function()
    {
        loadTable();

    });
</script>
</body>
</html>